package com.lele.controller;

import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/*
  Servlet实现方式三种：
  1、实现Servlet接口
  2、继承GenericServelt抽象类
  3、继承HttpServlet抽象类（GenericServelt实现了Servlet接口，而HttpServlet又继承了GenericServelt）
*/
public class HelloServlet extends HttpServlet {
    // 重写初始化方法，获取xml里配置的初始数据
    @Override
    public void init() throws ServletException {
        ServletConfig config = getServletConfig();
        String str = config.getInitParameter("key");
        System.out.println(str);

        ServletContext application = getServletContext();
        System.out.println(application.getInitParameter("cname"));
    }
    /*
      由于get和post只是请求实现的不同方式，可以相互调用，业务逻辑都一样
      区别：
        1、get会把参数暴露在地址栏上，post不会；
        2、Get传递参数大小2-6kb，post没有限制
        3、Get会留下缓存，post不会
        4、处理乱码：
            Get请求：tomcat8之后  默认字符集是utf-8  不需要处理
            Post请求：  req.setCharacterEncoding(“utf-8”);

      也可以重写service方法：Service方法可以自动识别是调用doGet()还是doPost()方法
    */
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        ServletConfig config = getServletConfig();
        String str = config.getInitParameter("key");
        System.out.println(str);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

    }

    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

    }
}
